From db7825383aac94414111a8e478d3a284ae418b45 Mon Sep 17 00:00:00 2001 From: Jeroen van der Heijden Date: Thu, 17 May 2018 11:46:24 +0200 Subject: [PATCH] Fix last() and update test --- src/siri/db/series.c | 4 ++-- test/test_select.py | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/siri/db/series.c b/src/siri/db/series.c index 6620217e..4d21f0f1 100644 --- a/src/siri/db/series.c +++ b/src/siri/db/series.c @@ -867,8 +867,8 @@ siridb_points_t * siridb_series_get_last( } /* string type does not have a buffer so we don't have to worry */ - points->data->ts = buf->data->ts; - points->data->val = buf->data->val; + points->data->ts = point->ts; + points->data->val = point->val; points->len = 1; return points; } diff --git a/test/test_select.py b/test/test_select.py index 9d64a2f0..625ffe16 100644 --- a/test/test_select.py +++ b/test/test_select.py @@ -309,6 +309,25 @@ class TestSelect(TestBase): await self.client0.query('select derivative() from "equal ts"') + self.assertEqual( + await self.client0.query('select first() from *'), + {k: [v[0]] for k, v in DATA.items()}) + + self.assertEqual( + await self.client0.query('select last() from *'), + {k: [v[-1]] for k, v in DATA.items()}) + + self.assertEqual( + await self.client0.query('select count() from *'), + {k: [[v[-1][0], len(v)]] for k, v in DATA.items()}) + + print(sum([x[1] for x in DATA['aggr']]) / len(DATA['aggr'])) + self.assertEqual( + await self.client0.query('select mean() from "aggr"'), + {'aggr': [[ + DATA['aggr'][-1][0], + sum([x[1] for x in DATA['aggr']]) / len(DATA['aggr'])]]}) + # test prefix, suffex result = await self.client0.query( 'select sum(1d) prefix "sum-" suffix "-sum", ' -- 2.30.2